Delivery of internet ads

ABSTRACT

A system for delivering advertisements via the internet may include an index file having entries related to advertisements for delivery via the internet, an extraction engine for updating the index file entries in accordance with changes in a database of said advertisements, a matching engine for matching a keyword in a query string to a plurality of the index file entries, a ranking engine for selecting an advertisement, for inclusion in a search result set responsive to the query sting, in accordance with an estimated monetary yield related to one of the plurality of index file entries matching a keyword in the query string and a pricing engine for discounting a charge for that inclusion in accordance with an estimated monetary yield for another one of the plurality of index file entries.

CROSS REFERENCE TO RELATED APPLICATIONS

This application claims the benefit of U.S. provisional application Ser.No. 60/721,311 filed Sep. 27, 2005 and Ser. No. 60/723,812 filed Oct. 5,2005.

BACKGROUND OF THE INVENTION

1. Field of the Invention

This invention is related to ad delivery systems for placing Internetadvertising in response to queries from search engine sites.

2. Description of the Prior Art

Conventional ad delivery systems have had problems, for example, withslow response, pricing which discouraged higher bids and limitedmatching. What is needed is an improved ad delivery system which avoidsor reduces the problems inherent in known systems.

SUMMARY OF THE INVENTION

In a first aspect, a method for delivering advertisements via theInternet may include extracting, from a database of advertisements, anindex file alphabetized by keyword, each entry in the index fileincluding a bid price for placement of the related advertisement,extracting a table of contents of the index file, each entry in thetable of contents for a keyword pointing to a start location of a firstentry related to that keyword in the index file, matching a keyword in aquery string to advertisements in the database by searching the table ofcontents to locate the start location of that keyword in the index andmatching that keyword to index file entries until a next indexed keywordis encountered, ranking advertisements matching the keyword at least inpart on an estimated yield for each such advertisement, pricing thehighest ranked advertisement at a price lower than the bid price forthat advertisement that retains the ranking for that advertisement forthat keyword and responding to the query string with a search result setincluding a link to the highest ranked advertisement for the keyword.

Each entry in the index file may include a set of preselected keywordsassociated with the advertisement and the keyword in the query stringmay be matched with one of keywords in the set of preselected keywordsin each entry in the index from the start location to the next indexedkeyword. Each entry in the index file may include a text copy of theadvertisement and the keyword may be matched with the text copy in eachentry in the index from the start location to the next indexed keyword.Each entry in the index file may include a set of preselected keywordsassociated with the advertisement, a text copy of the advertisement anda selected type of matching algorithm and the keyword in the querystring may be matched with one of keywords in the set of preselectedkeywords in each entry in the index from the start location to the nextindexed keyword if a second, broader type of matching algorithm isselected. Each entry in the index file may include a negative keywordand the negative keyword in the index file entry may be matched withanother keyword in the query string to prevent a match of the keyword inthat query string with that index file entry. Each entry in the indexfile may include click through rate data for each advertisement and theestimated yield may be determined as a product of the bid price and theclick through rate data for each such matching entry.

Further, the search result set may include links to a plurality of otherranked advertisements for the keyword. Each entry in the index file mayinclude a URL linking to the advertisement used a link in the result setto that advertisement. The search result set may be filtered to removelinks to entries, based on the URL and/or based on a domain associatedwith the query string and/or to links to entries having bid pricesand/or click through rates below predetermined minimums, beforeresponding.

Further, the index and table of content files may be rebuilt on a dailybasis during time periods of relatively low usage and/or may be updatedmore frequently than the index and table of content files are rebuilt.The index and table of content files may be incrementally updated byadding data to the index and table of contents and marking entries inthe TOC for deletion. The table of contents may be stored in RAM. Adatabase of advertisements and click through rates, for eachadvertisement in the database, may be maintained from which the indexfile and table of contents may be extracted.

In another aspect, a system for delivering advertisements via theinternet may include an index file having entries related toadvertisements for delivery via the internet, an extraction engine forupdating the index file entries in accordance with changes in a databaseof said advertisements, a matching engine for matching a keyword in aquery string to a plurality of the index file entries, a ranking enginefor selecting an advertisement, for inclusion in a search result setresponsive to the query string, in accordance with an estimated monetaryyield related to one of the plurality of index file entries matching akeyword in the query string and a pricing engine for discounting acharge for that inclusion in accordance with an estimated monetary yieldfor another one of the plurality of index file entries.

The index file may include an estimated monetary yield for inclusion ofthe advertisement associated with each index file entry in a searchresult set. The estimated monetary yield in each index file entry isbased in part on an agreed maximum charge for each selection of therelated advertisement from a search result set and/or a rate at whichthe related advertisement has been selected when included in searchresult sets. The estimated monetary yield may be based on the product ofthe agreed maximum charge and the click through rate.

The extraction engine may update each index file entry in accordancewith data related to selection of the related advertisement whenincluded in search result sets. A reporting system may be included formonitoring a rate at which each advertisement has been selected whenincluded in search result sets and the extraction engine may responsiveto the reporting system for updating the index file. The ranking enginemay selects the advertisement in accordance with the index file entryhaving the highest estimated monetary yield and the pricing engine maydiscount the charge for inclusion in accordance with the entry havingthe next highest estimated monetary yield.

A table of contents file having TOC entries related to entries in theindex file may be included. A first memory for storing the index fileand a second memory, having a faster time to retrieve data than thefirst memory, may be included for storing the table of contents file.The extraction engine may periodically rebuild the index and table ofcontent files and may update the index and table of content files morefrequently than they are rebuilt. A first selectable matching algorithmfor matching keywords in the query string to keywords stored in each ofthe index file entries, and a second selectable matching algorithm formatching keywords in the query string to words in each relatedadvertisement, may be provided. The index file entries may include aselection between the first and second matching algorithms. The matchingengine may not match a keyword in the query string with an otherwisematching one of the index file entries when the matching file does matcha specified negative keyword in that one of the index file entries witha keyword in the query string.

A database of advertisements and click through rates for eachadvertisement in the database may be included wherein the extractionengine updates the index file in accordance with changes in thedatabase.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 is a block diagram overview of an advertisement delivery system.

FIG. 2 is a block diagram of an alternate, more detailed embodiment ofan ad delivery system.

FIG. 3 is a flow chart of a normalizing engine.

DETAILED DISCLOSURE OF THE PREFERRED EMBODIMENT(S)

An ad delivery system may include a database of ads and an ad deliveryengine which may include an extraction engine to extract the ads into anindex data file, and a table of contents or TOC, may match the ads to aquery string from a search engine site using different matching criteriawhile excluding some otherwise matching ads, may rank the matched adsbased on a potential yield such as maximum bid or cost per click,adjusted for example by an actual or observed click-thru rate, may pricethe ads on a different basis than ranking, for example, by discountingthe ranking basis to the minimum which preserves the ranking, and/or mayfilter the ads based on predetermined criteria.

The extraction engine may provide a full rebuild of the index, and TOC,on a periodic basis such as once per day, while providing an update, byindexing only data new since the last full rebuild, on a more frequentbasis. The TOC may be saved in a relatively fast memory, such as RAMmemory, while the index because of its size may be saved in a relativelyslower memory such as on disk. The TOC, which is alphabetized inaccordance with keywords, may contain a pointer to the location of thefirst byte related to each set of alphabetized keywords, to reduce thetime required to search through the entries in the index for each groupof keyword entries. The terms “keyword” or “keywords” are used herein todenote both one or more individual keywords, one or more key phrases, orgroups of words, and combinations of one or more keywords with one ormore key phrases

Referring now to FIG. 1, system 10 for high-performance delivery ofInternet advertisements is disclosed which may include an incrementallyupdated engine 12 for extracting, indexing, matching, ranking, pricing,and filtering advertisements. Engine 12 may operate by extractingadvertisements from ad database 14 and building an index and/or a tableof contents (or TOC) for the index. This index can be periodicallyrebuilt, and may also be incrementally updated between rebuilds. A TOCfor the index may also be rebuilt each time and includes a pointer tothe location in the index. The index is preferably alphabetized based onkeywords so that all ads related to a specific keyword may be foundbeginning at a particular start location in the index. The TOC, ifbuilt, would then also be alphabetized by keyword and provide the startlocation in the index for all entries associated with a particularkeyword or key phrase.

While in operation, query handler 16 receives a query from an Internetwebsite such as Partner Site 16 and returns a list of advertisements.The query is keyword matched to advertisements by one of multipleselected matching algorithms. Matching advertisements may then be rankordered by yield, e.g. financial yield. Prices may then be set forplacement of each matching advertisement. Some advertisements may befiltered out of the result set. Ultimately, Delivery engine 12 returns aresult set or list for the query, each entry of which may include a)creative material such as the content of the ad, b) price information,and c) one or more URL (or uniform resource locators) for eachadvertisement.

The operation of delivery engine 12 can be subdivided into fiveelements: (1) indexing, (2) matching, (3) ranking, (4) pricing, and (5)filtering.

Delivery engine 12 makes use of a technique called normalization. A textsample has been normalized if it has been stemmed, stopped, and sorted.Stemming refers to reducing the word or phrase to its stem (thus pluralsbecome singular, for example). “Stop” words (i.e., words that have beenidentified to be detrimental to relevance because they are grammaticalindicators or otherwise excessively common or inappropriate) are thenremoved. Finally, multiple word and phrase elements are sortedalphabetically.

-   -   (1) Indexing. In order to build its index, delivery engine 12        may take a complete extract of advertisements from advertisement        database 14, which preferably may be a relational database. The        extract preferably includes entries for ads in the form of        creative material, advertiser web site URL, one or more        keywords, MaxCPC, observed click-through rate, choice of        matching algorithm, and one or more of various advertisement        options. MaxCPC may be the maximum cost-per-click price that the        advertiser is willing to pay for each placement of the ad.        Advertisement database 14 may have been populated through some        source of advertisements, such as ad purchasing system 20, in        which potential advertisers may purchase advertisements, that        is, purchase placement of their advertisements.        -   Delivery engine 12 reads advertisement data extracted from            database 14 and saves it in an ad data file or index. It may            also save several fields of each record in the extract to a            TOC (table of contents) file. These fields may include each            keyword, the byte location of the start of its record in the            ad data or index file, pricing fields, and filtering fields.            Incremental updates may occur on a periodic batch basis;            inserts, updates and deletes may be processed by adding new            data to the ad data file (e.g. inserts and updates) and by            marking items in the TOC File (e.g. deletes).    -   (2) Matching. Delivery engine 12 can match queries from query        handler 16 to advertisements using one or more matching        algorithms such as the SmartMatch or BroadMatch algorithm        described below. A query consists of a query string of one or        more words, as well as flags indicating the source of the query,        such as partner site 18. Partner site 18 may have a distribution        arrangement with the proprietor of delivery engine 12 and may        receive search requests from its clients which it forwards to        sources of search results such as delivery engine 12. The query        string may also include other details of the original request        made to partner site 18. Delivery engine 12 constructs a result        set of matching advertisements, and or other query results which        are then provided to Query Handler 16 for use by partner site 18        in responding to search requests made to site 18 by its clients.        -   a. A so-called SmartMatch algorithm may be applied to            keywords that have been normalized at purchase time, that            is, when the advertising placement was purchased through ad            purchasing system 20. At query time, that is when a query is            processed by query handler 16, the query may be normalized            using identical rules to the rules used at purchase time.            Exact matches between query and keywords are considered            positive matches by the SmartMatch algorithm. In other            words, an ad purchaser may be able to select the words in a            query which cause the ad to be selected or matched.        -   b. A so-called BroadMatch algorithm matches for all keywords            associated with the ad that are contained within the query.            Thus, an advertisement associated with keyword “red bull”            would be a positive match using the BroadMatch algorithm            with a query of “red bull drink”. Advertisers may also            specify negative keywords when using the BroadMatch option.            “Negative keywords” are text strings which cause the match            to fail when they are found in the query string, even if            there is otherwise a match. Thus, an advertisement            associated with keyword “red bull” could specify “soda” as a            negative keyword so that the BroadMatch algorithm would not            indicate a match with a query which included the phrase “red            bull soda”. Matches are found by extracting known phrases            from the normalized query. Each known phrase may be            associated with one or more advertisements in the TOC File.            All associated advertisements may be combined into one            result set. Only the longest phrases may be considered            because advertisements associated with sub phrases may            already be combined into the longest phrases in the TOC            File.    -   (3) Rank ordering. Delivery engine 12 may rank advertisements        associated with keywords which have been matched to the incoming        query from query handler 16. The rank ordering in the result set        may be determined by the actual or projected yield to the        proprietor of delivery engine 12. “Yield” in the system 10 may        be defined as the product of the click-through rate with MaxCPC,        that is, yield may be based on the amount of money to be paid by        the advertiser for placement of an ad. The MaxCPC may be set by        the advertiser at purchase time, e.g. in whatever ad purchasing        system 20 which populates the advertisement database 14. The        click-through rate may be determined by click tracking system        13, which may also perform web advertisement click-through and        redirect operations, and which may update advertisement database        14 with such information for each advertisement.    -   (4) Pricing. Delivery engine 12 may set the price paid by each        purchaser of ad space for space allotted to each advertisement        in the result set. Prices may be limited to not exceed the        MaxCPC. Prices may be discounted to the lowest price necessary        to provide the optimal placement of the advertisement, e.g. the        lowest price at which an ad may be placed without changing its        ranking relative to other ads matching the same keywords. Ad        placement may be subject to reserve prices (minimum or maximum        price for certain keywords and/or distribution partners, such as        partner site 16) and may then be eliminated from the result set        if they do not meet the reserve. Under some circumstances, there        may be additional discounts which are applied to prices before        the result set is returned.    -   (5) Filtering. Advertisements in the result set may be filtered        out, or otherwise treated specially, on the basis of a number of        criteria, including minimum click-through rate, minimum price,        advertiser's domain, or domain of the referring site.

Referring now to FIG. 2, in a preferred embodiment, a potential adpurchaser such as advertiser 24, may purchase placements for itsadvertisements for products or services from ad purchasing system 26.The advertisements may be retrievable from a specific URL, such asadvertiser's web site 25. Ad purchasing system 26, and/or reportingsystem 28, stores data or causes data to be stored related to theadvertisement purchase and estimated or actual click-through ratesdetermined thereafter, in one or more related databases such as databaseof ads and click thru rates 30. Database 30 is typically a relationaldatabase of advertisements with fields for data in the form of creativematerial, such as the advertisement content at a specific URL, areference to a related URL e.g. for advertiser's web site 25, one ormore keywords or key phrases (hereinafter “keywords”) related to thecontent of the ad, the purchaser's bid such as the maximum cost perclick (MaxCPC) that ad purchaser is willing to pay for placement of theassociated advertisement, an estimated or other click-through rate(preferably an observed click-thru rate after the advertisement has beenpurchased and distributed), the purchaser's choice of matchingalgorithm, and one or more various other advertisement options.

In operation, search engine user 32 may be connected to search enginesite 34 (e.g. partner site 18 shown in FIG. 1) requesting a search, suchas a search for “car washes”. Search engine site 34 may contact queryhandler 36 (as well as other ad delivery system query inputs) todetermine if search results can be provided. In response, query handler36 provides a query string to ad delivery engine 38 which obtains afiltered and ranked list of matching advertisements based on data indatabase 30 and returns that list to search engine site 34. Searchengine site 34 may combine the returned list with other lists of searchresults and deliver the combined list as search results to search engineuser 32.

User 32 may select, or click on, one of the entries in the list providedin response to the search user's search request and be transparentlyredirected to another site, such as redirect site 37, which directs user32 to advertiser's web site 25.

Reporting system 28, or a similar mechanism for example associated withredirect site 37, may then detect the selection made by user 32 whenuser 32 clicks on the particular advertisement on the list of searchresults provided to user 32, or at least on the portion of that listprovided via ad delivery engine 38, and records that action, e.g. forexample as a click for which advertiser 24 will be charged and/or todetermine a click through rate e.g. the percentage of the time that thespecific URL is selected by a user when listed in the search results.Reporting system 28, or a similar mechanism, may then causes the clickthrough rate to be stored in database 30 and associated therein with theadvertisement to which it is related.

In operation, extraction engine 39 in ad delivery engine 38 may extractinformation from database 30 to fully and/or incrementally rebuild index40 and TOC 42.

Preferably, extraction engine 39 performs full rebuilds of index 40and/or TOC 42 on a regular basis, such as once per day. A full rebuildof index 40 may require a substantial amount of time to extract the datarelated to each advertisement in database 30 and therefore such rebuildsare typically done during time periods of relatively low usage, forexample at midnight each day. Index 40 may be a simple, but potentiallylarge data file but is, of course, much smaller than ad database 30.Index file 40 may be stored on disk, or other relatively slow memorycompared to memory on which TOC 42 may be stored, because of its size.

Index 40 is preferably alphabetized in accordance with its keywords. Forexample, if one of the keywords for advertiser 24 is “car wash”, datarelated to the ad for advertiser 24 would be stored alphabetically inindex 40 based on the keyword phrase “car wash”. If “car wash” is also akeyword phrase for another advertiser, the data for that otheradvertiser would preferably be stored in index 40 adjacent to the datafor all other ads having the same keyword, such as the ad for advertiser24. The benefit of this simple, alphabetized storage approach will bemore apparent from the description below of index 40 and/or TOC 42.

A subset of the data stored in index 40 may also be stored in TOC 42,preferably including data related to the keywords, pricing, filteringfields (described below in greater detail) and observed click-throughrates for each advertisement as well as a pointer to the location ofthat data in index 40. The pointer is preferably related to the locationof first byte (or start byte) of data for the first stored advertisementdata for the associated keyword or phrase stored in index 40. That is,the pointer in TOC 42, for the data related to all advertisements forwhich “car wash” is a keyword, would point to the start byte location inindex 40 for the first listed advertisement for which “car wash” is akeyword. Thus, some data for all advertisements for which “car wash” isa keyword in index 40 can easily, and quickly, be found by TOC 42 bystarting at the start byte location for the first listed advertisementfor that keyword in index 40 and processing the data found thereafteruntil a new keyword is found. Thus, the ranking of all ads related toeach particular keyword may easily be accomplished at one time becauseall such ads are listed together in index 40 which includes the locationof each such ad in full ad database 30.

In addition, incremental updates may also be performed on a periodicbasis more often than the full rebuilds of index 40. For example, if thefull rebuilds of index 40 and/or TOC 42 are performed daily at midnight,incremental rebuilds may be done on an hourly basis during the day. As aresult of an incremental update, inserts, updates and deletes may beprocessed by adding new data to index 40 and TOC 42 for inserts andupdates and by marking items in the TOC File for deletions.

One of the reasons for combining both full and incremental rebuilds andupdates is that reliance on full rebuilds would limit the accuracy ofindex 40 and TOC 42 with regard to the then current state of database 30and/or require more time for response to a query.

Reliance on a repetitively updated, but not often rebuilt, index 40 andTOC 42 may also limit the accuracy of index 40 and TOC 42 because anerror, once it occurs, would be difficult or impossible to correct.

Preferably, TOC 42 may be used to provide faster access to index 40 andwould therefore typically be stored in a faster memory, such as RAM, tospeed up the processing by ad delivery system 38. In particular,locating the address of the first or start byte in index 40 for allentries for a particular keyword or phrase by searching in TOC 42 in RAMmay be a very quick and time efficient process. By also storing someadditional specific data in RAM TOC 42 for each advertisement, such aspricing or filtering data, the processing time requirements of otheraspects of ad delivery engine 38 including ranking engine 54, pricingengine 56 and filter 58, may also be optimized. The processing time formatching engine 52, in addition to the preferably optimized time forlocating the starting byte in index 40 for all entries for a particularkeyword or phrase which are stored adjacent to each other, remainsdependent on the speed of the memory in which index 40 is stored, forexample, on a hard disk or other memory typically relatively slower thanRAM.

Referring now also to FIG. 3, in normalizing engine 44, stem processor46 reduces each word or phrase to its stem e.g. “car washes” becomes“car wash”. Thereafter, stop processor 48 removes words that havepreviously been identified to be detrimental to relevance such asexcessively common words including “the”, “an” etc. as well asinappropriate words and/or grammatical indicators. Thereafter, multipleword and phrase elements are sorted alphabetically in sorter 50. Thetext input to normalizing engine 44 may be advertising content, and/orseparately identified keywords and phrases, in database 30 and thenormalized text may be applied to index 40 and/or TOC 42.

Similarly, the text applied to normalizing engine 44 may be a querystring from query handler 36 and the normalized text may be applied tomatching processor 52. A query consists of a query string of one or morewords, as well as flags preferably indicating the distribution partnerand other details of the original request.

Referring now again to FIG. 2, matching engine 52 may be used toconstruct a set of matching advertisements in database 30 in response toa query from query handler 36 in more than one way. In one embodiment,keywords normalized at the time of purchase by advertiser 24 may bematched to determine exact matches with normalized text from the queryprocessed by query handler 36. In a preferred embodiment, both theadvertisement keywords and the query string are normalized using theidentical words to produce positive matches in processor.

Alternately, all keywords in the advertisement which are fully containedwithin the query may produce positive matches in matching engine 52 inorder to produce a larger set of matching advertisements. Thus, usingthe broader matching approach, an advertisement associated with keyword“red bull” would be a positive match with a query for “red bull drink”.Advertiser 24 may indicate at the time of purchase which matching engineapproach is to be used and that selection may be stored in database 30and/or in index 40 or TOC 42.

Advertiser 24 may also specify negative keywords for use when using thisbroader approach in matching engine 52 in order to cause matches tofail. Negative keywords may be text strings, for example, which cause amatch to fail when they are found in the query string, even if therewould otherwise a match. For example, an advertiser using “Red Bull” asa keyword for drink product may specify a negative keyword of “dartboards” if “Red Bull” happens to also be a brand of dart boards and theadvertiser does not want his advertisements to be delivered with searchresults for searches for “Red Bull Dart Boards”.

Each known phrase may be associated with one or more advertisements inthe TOC File. All associated advertisements may be combined into oneresult set. Only the longest phrases may be considered becauseadvertisements associated with sub phrases may already be combined intothe longest phrases in the TOC File. The output of matching engine 52may be considered a result set of matching advertisements.

Ranking engine 54 ranks the advertisements in the result set frommatching engine 52 in an order related to the potential monetary yieldto the service from whom the advertisement was purchased, typically theoperator of ad purchasing system 26. The potential yield may becalculated as a function of the bid by advertiser 24 and the actual orestimated success of the advertisement in attracting users, such as user32, when listed in the results provided by search engine site 34.

For the purposes of calculating the potential yield, the bid maypreferably be in the form of the maximum cost per click (MaxCPC). MaxCPCmay be considered to be a bid from advertiser 24 for the highest costper click advertiser 24 has agreed to pay for placement of theadvertisement for advertiser's web site 25. The advertisement's successin achieving placement for its adds may preferably be monitored in theform of an observed (or estimated or otherwise calculated) click-throughrate which may be provided by reporting system 28 as determined forexample from redirect site 37, as described in more detail below, orother systems performing related functions. Data related to the bid, orMaxCPC, and success, or click-through rate may conveniently be stored indatabase 30. The output of ranking engine 54 may be considered to be aresult set of ranked, matching advertisements.

Pricing engine 56 operates on this result set to determine a price, thatis, a price to be paid by a purchaser, such as advertiser 24, of each ofthe ranked and matched advertisements (such as the advertisement foradvertiser's web site 25) in the result set from ranking engine 54 whenthat advertisement is selected for viewing by user 32. It is importantto note that the price charged for placement of each advertisement maybe below or up to the bid or MaxCPC set by advertiser 24 when the bidwas placed or when later updated.

Advertisements may also be subject to reserve prices (minimum or maximumprices for certain keywords and/or for distribution partners) and may beeliminated from the result set if they do not meet such reserve prices.Under some circumstances there may be additional discounts which areapplied to prices before the result set is returned.

Filter 58 may operate on the result set from pricing engine 56 to filterout advertisements on the basis of a number of criteria, such as aminimum click-through rate which may be set by ad purchasing system 26or by search engine site 34, a minimum price, the internet domain ofadvertiser 24, or the domain of a referring site which may have referredadvertiser 24 to ad purchasing system 26.

As an example of the operation of system 10, ad purchaser or advertiser24 may be a business, such as Pete's Car Wash, which has created a website 25 on which an advertisement for its car wash business is located.In order to promote its business, Pete's Car Wash contracts with adpurchasing system 26 to have web site 25 included in result setsprovided to search engine users, such as user 32, from a search enginesite such as site 34, when the words “car wash” are included in thesearch request e.g. the query string.

Search engine sites are web sites presenting one or more search featuresto their users. One of the ways these sites generate revenue is bydisplaying advertising as part of search results. Search engine sites,such as site 34, may have a relationship with one or more partner siteshaving ad delivery engines, such as ad delivery engine 38, via queryhandlers such as handler 36, to provide a ranked set of matchingadvertisements in response to a search engine user's search requestforwarded by site 34. In this example, in response to a request fromsearch engine site 34 for search results related to the keywords “carwash”, query handler 36 may provide a ranked set of advertisementsrelated to car wash to search engine site 34 in the form of a set ofredirection operations, for example to redirect site 37.

Each entry in this ranked set of matching advertisements may be selectedby user 32 by clicking on that entry which may cause user 32 to betransparently sent to redirect site 37 which again redirects user 32,for example, to advertiser's web site 25. Redirect site 37 may also senddata to reporting system 28, which may be part of redirect site 37, adpurchasing system 26 or otherwise be related to them, indicating whichadvertisements in data base 30 are displayed to user 32 and which, suchas advertiser's web site 25, were selected by user 32 clicking so thatan observed click-thru rate may be determined and entered into database30 and/or advertiser 24 may be billed for the actual click through tohis site.

After operation of matching engine 52, ranking engine 54 serves to rankor order the matching advertisements in accordance with the bid orMaxCPC arrangement between Pete's Car Wash and ad purchasing system 26.Advertiser 24 is not necessarily, however, required to pay the maximumcost per click rate originally bid.

In a preferred embodiment, Pete's Car Wash is ranked in accordance withthe bid MaxCPC (adjusted for the observed click-through rate) but onlyrequired to pay just enough to get ranked above the nearest competitor'sbid. This approach motivates advertisers, such as Pete's Car Wash, tobid a higher MaxCPC because that highest rate will only be charged ifnecessary to achieve a higher rank or order in the search resultspresented to user 32.

In pricing engine 56, pricing may be based on a discounted yield rank.Rank, as noted above, is based on potential financial yield to theoperator of ad purchasing system 26. Pricing engine 56, however, may setactual pricing so that advertiser 24 is only required to pay the costper click rate necessary to maintain the ranking of its ad determined byranking engine 54.

In one example, Pete's maximum bid or MaxCPC may be $0.40 per clickwhile his estimated or observed click-through rate may be 2%. Similarly,one of Pete's competitors for ranking, George, may have a maximum bid orMaxCPC of $0.50 per click but a click-through rate of only 1%. Inconventional ad delivery systems, George may have been ranked higher inorder over Pete because George's maximum bid is greater than Pete's. Ina preferred embodiment as described above, ranking engine 54 may rankPete's higher than George in the results list because Pete's potentialyield is 0.40*0.02=0.08 while George's potential yield is only0.50*0.01=0.05.

However, pricing engine 56 may operate to discount Pete's potentialyield, even though the potential yield was used in determining Pete'srank, to determine the price that Pete's is required to pay for actualclick-through selections by users. In the above example, the potentialyield may be discounted to be just above the potential yield of Pete'scompetitor for ranking. Pete's may only be charged, for example byreporting system 28 or some other convenient system, $0.051 per click,that is, just enough to get ranked above the first lower rankedcompetitor, George, whose potential yield was $0.05 per click.

1. A system for delivering advertisements via the internet, comprising:an index file having entries related to advertisements for delivery viathe internet; an extraction engine for updating the index file entriesin accordance with changes in a database of said advertisements; amatching engine for matching a keyword in a query string to a pluralityof the index file entries; a ranking engine for selecting anadvertisement, for inclusion in a search result set responsive to thequery string, in accordance with an estimated monetary yield related toone of the plurality of index file entries matching a keyword in thequery string; and a pricing engine for discounting a charge for thatinclusion in accordance with an estimated monetary yield for another oneof the plurality of index file entries.
 2. The invention of claim 1wherein the index file further comprises: an estimated monetary yieldfor inclusion of the advertisement associated with each index file entryin a search result set.
 3. The invention of claim 2 wherein theestimated monetary yield in each index file entry is based in part on anagreed maximum charge for each selection of the related advertisementfrom a search result set.
 4. The invention of clam 2 wherein theestimated monetary yield in each index file entry is based in part on arate at which the related advertisement has been selected when includedin search result sets.
 5. The invention of claim 2 wherein the estimatedmonetary yield in each index file entry is based on the product of anagreed maximum charge for each selection of the related advertisementand a rate at which the related advertisement has been selected whenincluded in a search result set.
 6. The invention of claim 2 wherein theextraction engine updates each index file entry in accordance with datarelated to selection of the related advertisement when included insearch result sets.
 7. The invention of claim 1 further comprising: areporting system for monitoring a rate at which each advertisement hasbeen selected when included in search result sets, wherein theextraction engine is responsive to the reporting system for updating theindex file.
 8. The invention of claim 1 wherein the ranking engineselects the advertisement in accordance with the index file entry havingthe highest estimated monetary yield.
 9. The invention of claim 8wherein the pricing engine discounts the charge for inclusion inaccordance with the entry having the next highest estimated monetaryyield.
 10. The invention of claim 1 further comprising: a table ofcontents file having TOC entries related to entries in the index file.11. The invention of claim 10 further comprising: a first memory forstoring the index file; and a second memory, having a faster time toretrieve data than the first memory, for storing the table of contentsfile.
 12. The invention of claim 11 wherein the extraction engineperiodically rebuilds the index and table of content files.
 13. Theinvention of 12 wherein the extraction engine updates the index andtable of content files more frequently than they are rebuilt.
 14. Theinvention of claim 1 wherein the matching engine further comprises: afirst selectable matching algorithm for matching keywords in the querystring to keywords stored in each of the index file entries.
 15. Theinvention of claim 14 wherein the matching engine further comprises: asecond selectable matching algorithm for matching keywords in the querystring to words in each related advertisement.
 16. The invention ofclaim 15 wherein each of the index file entries includes a selectionbetween the first and second matching algorithms.
 17. The invention ofclaim 1 wherein the matching engine does not match a keyword in thequery string with an otherwise matching one of the index file entrieswhen the matching file does match a specified negative keyword in thatone of the index file entries with a keyword in the query string. 18.The invention of claim 1 further comprising: a database ofadvertisements and click through rates for each advertisement in thedatabase, wherein the extraction engine updates the index file inaccordance with changes in the database.